package com.taotao.content.service.impl;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.taotao.content.service.ContentCategoryService;
import com.taotao.mapper.TbContentCategoryMapper;
import com.taotao.pojo.TbContentCategory;
import com.taotao.pojo.TbContentCategoryExample;
import com.taotao.pojo.TbContentCategoryExample.Criteria;

import pojo.EasyUITreeNode;
import pojo.TaotaoResult;
@Service
public class ContentCategoryServiceImpl implements ContentCategoryService{
	//內容分类管理例表显示
	@Autowired
	private TbContentCategoryMapper tbContentCategoryMapper;
	@Override
	public List<EasyUITreeNode> getContentCategoryList(long parentId) {
		TbContentCategoryExample example =new TbContentCategoryExample();
		Criteria criteria = example.createCriteria();
		criteria.andParentIdEqualTo(parentId);
		List<TbContentCategory> list = tbContentCategoryMapper.selectByExample(example);
		List<EasyUITreeNode> listNode = new ArrayList<>();
		for (TbContentCategory tbContentCategory : list) {
			EasyUITreeNode node =new EasyUITreeNode();
			node.setId(tbContentCategory.getId());
			node.setText(tbContentCategory.getName());
			node.setState(tbContentCategory.getIsParent()?"closed":"open");
			listNode.add(node);
		}
		return listNode;
	}
	//后台内容分类管理新增 
	@Override
	public TaotaoResult addContentCategory(long parentId, String name) {
		TbContentCategory tbContentCategory =new TbContentCategory();
		//设置tbContentCategory属性,其中id是自增长的
		//分类名称
		tbContentCategory.setName(name);
		//父节点
		tbContentCategory.setParentId(parentId);
		//排序方式.默认为1
		tbContentCategory.setSortOrder(1);
		//状态,新增的因为是正常状态(1)
		tbContentCategory.setStatus(1);
		//新增的肯定不是父节点
		tbContentCategory.setIsParent(false);
		//保存
		tbContentCategoryMapper.insert(tbContentCategory);
		//判断新增节点的父节点的isparent是否为true，不是true需要改为true。
		TbContentCategory parentNode = tbContentCategoryMapper.selectByPrimaryKey(parentId);
		if (!parentNode.getIsParent()) {
			parentNode.setIsParent(true);
			//更新父节点的信息
			tbContentCategoryMapper.updateByPrimaryKey(parentNode);
		}
		// 返回TaotaoResult，其中包装TbContentCategory对象,这个对象中除了设置的属性,还包含了主键(在mapper中修改了所有支持主键返回)
		return TaotaoResult.ok(tbContentCategory);
	}
	//后台内容分类管理修改名字 
	@Override
	public TaotaoResult updateContentCategory(long id, String name) {
		TbContentCategory tbContentCategory = tbContentCategoryMapper.selectByPrimaryKey(id);
		tbContentCategory.setName(name);
		tbContentCategoryMapper.updateByPrimaryKeySelective(tbContentCategory);
		return TaotaoResult.ok();
	}

}
